package flow;
import android.support.annotation.NonNull;
import java.util.Iterator;
/**
* Default implementation of {@link HistoryFilter}, enforces the contract
* documented on {@link NotPersistent}.
*/
class NotPersistentHistoryFilter implements HistoryFilter {
@NonNull @Override public History scrubHistory(@NonNull History history) {
History.Builder builder = History.emptyBuilder();
final Iterator<Object> keys = history.reverseIterator();
while (keys.hasNext()) {
Object key = keys.next();
if (!key.getClass().isAnnotationPresent(NotPersistent.class)) {
builder.push(key);
}
}
return builder.build();
}
}